package camadaRN;

import java.rmi.RemoteException;

public class RNUsuario{ 

	private String nome;
	private String senha;
	private boolean status;
	private int pontuacao;
	private RNPartida partida;
	
	public RNUsuario(String nome, String senha){
		this.setNome(nome);
		this.setSenha(senha);
	}

	public boolean cadastrarNovoUsuario(){
		try {			
			return RNEliteSquadCliente.getServidor().cadastrarUsuario(this.getNome(),this.getSenha());
		} catch (RemoteException e) {
			System.out.println( "RemoteException: " + e.toString() );
		}	
		return false;
	}
	
	public boolean logarUsuario(){			
		try {				
			return RNEliteSquadCliente.getServidor().logarUsuario(this.getNome(),this.getSenha());
		} catch (RemoteException e) {
			e.printStackTrace();
			System.out.println( "RemoteException: " + e.toString() );
		}	
		return false;
	}

	public void desafiarOponente(RNUsuario oponente){
		try {
			RNEliteSquadCliente.getServidor().desafiarOponente(this.getNome(),oponente.getNome());
		} catch (RemoteException e) {
			e.printStackTrace();
		}
	}

	public void enviarNovoStatus(){
		try {
			RNEliteSquadCliente.getServidor().enviarNovoStatus(this.getNome(),this.getStatus());
		} catch (RemoteException e) {
			e.printStackTrace();
		}
	}	



	public void responderDesafio(boolean resposta,String desafiante){
		try {
			RNEliteSquadCliente.getServidor().responderDesafio(resposta,desafiante,getNome());
		} catch (RemoteException e) {
			e.printStackTrace();
		}
	}	
	
	//GETTERS E SETTERS
	
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getSenha() {
		return senha;
	}
	public void setSenha(String senha) {
		this.senha = senha;
	}
	public boolean getStatus() {
		return status;
	}
	public void setStatus(boolean status) {
		this.status = status;
	}
	public int getPontuacao() {
		return pontuacao;
	}
	public void setPontuacao(int pontuacao) {
		this.pontuacao = pontuacao;
	}
	public RNPartida getPartida() {
		return partida;
	}
	public void setPartida(RNPartida partida) {
		this.partida = partida;
	}
}